Saltar al contenido principal

Configuración de MQTT

Esta guía muestra cómo configurar la comunicación MQTT entre su cámara OV20i y dispositivos externos utilizando Node-RED. MQTT habilita mensajería ligera y confiable para aplicaciones IoT y comunicación con dispositivos remotos.

Cuándo usar MQTT: integración de dispositivos IoT, sistemas de monitoreo remoto, patrones de publicación/suscripción, entornos de ancho de banda reducido, redes de sensores distribuidas, o cuando necesite entrega confiable de mensajes con reconexión automática.

Prerrequisitos

  • Sistema de cámara OV20i configurado y conectado
  • Conectividad de red entre la cámara y el broker MQTT
  • Broker MQTT disponible (local o basado en la nube)
  • Comprensión básica de conceptos de MQTT (temas, publicar/suscribirse)
  • Receta activa configurada en la cámara

Descripción general de MQTT

Conceptos Clave de MQTT:

  • Broker: Servidor central que dirige mensajes entre clientes
  • Topics: Categorías de mensajes (p. ej., "camera/status", "commands/trigger")
  • Publish: Enviar mensajes a un tema
  • Subscribe: Recibir mensajes de un tema
  • QoS: Niveles de Calidad de Servicio (0, 1, 2)

Paso 1: Verificar la Configuración de Red

1.1 Verificar la Configuración de Red de la Cámara

  1. Ir a Configuración del Sistema
  2. Anotar la dirección IP de la cámara (p. ej., 192.168.0.100)
  3. Verificar la conectividad de red hacia el broker MQTT

1.2 Requisitos del broker MQTT

Asegúrese de que el broker MQTT sea accesible:

  • Misma red: La cámara debe poder alcanzar la dirección IP del broker
  • Acceso al puerto: Puerto MQTT predeterminado 1883 (o 8883 para TLS)
  • Autenticación: Nombre de usuario/contraseña si el broker lo requiere
  • Cortafuegos: Permitir tráfico MQTT en los puertos requeridos

1.3 Requisitos de Red

ComponenteDirección IPPuertoNotas
Cámara192.168.0.100N/ADebe alcanzar al broker
Broker MQTT192.168.0.2001883Puerto MQTT estándar
Dispositivos Cliente192.168.0.xxxVariableCualquier dispositivo suscriptor

Paso 2: Acceder al Editor de Node-RED

2.1 Navegar al Bloque IO

  1. Abra su receta activa en el Editor de Recetas
  2. Haga clic en Configurar E/S o seleccione Bloque IO en el menú de migas para ingresar al editor Node-RED

2.2 Verificar nodos MQTT disponibles

Verifique la paleta de Node-RED para nodos MQTT:

  • mqtt in - Suscribirse a temas MQTT
  • mqtt out - Publicar en temas MQTT

Punto de control: Debe verse nodos MQTT en la sección Network del panel izquierdo.

Paso 3: Configurar la Conexión al Broker MQTT

3.1 Agregar Configuración del Broker MQTT

  1. Arrastrar el nodo "mqtt in" al lienzo (para la configuración inicial)
  2. Haga doble clic en el nodo para abrir la configuración
  3. Haga clic en el icono de lápiz junto al campo Servidor
  4. Haga clic en "Agregar nuevo broker MQTT"

3.2 Configurar la Configuración del Broker

Configuración básica del Broker:

ConfiguraciónValorDescripción
NombreBroker MQTT de la CámaraIdentificador descriptivo
Servidor192.168.0.200Dirección IP del broker MQTT
Puerto1883Puerto MQTT estándar
ProtocoloMQTT V3.1.1Versión recomendada
ID de cliente(autogenerado)Deje en blanco para automático

3.3 Configuración de Autenticación (Si se Requiere)

Si el broker requiere autenticación:

ConfiguraciónDescripción
Nombre de usuarioNombre de usuario del broker MQTT
ContraseñaContraseña del broker MQTT
Usar TLSHabilitar para conexiones seguras (puerto 8883)

3.4 Configuraciones Avanzadas

Opciones de Conexión:

ConfiguraciónValor RecomendadoDescripción
Keep Alive60 segundosIntervalo de latido
Clean SessionTrueIniciar sesión limpio en cada conexión
Auto ConnectTrueReconectar automáticamente

3.5 Guardar Configuración del Broker

  1. Haz clic en "Agregar" para guardar la configuración del broker
  2. Haz clic en "Listo" para cerrar la configuración del nodo
  3. La configuración del broker ya está disponible para todos los nodos MQTT

Paso 4: Configurar MQTT In (Suscripción)

4.1 Configurar Nodo MQTT In

  1. Seleccione el nodo "mqtt in" que añadió
  2. Doble clic para configurar
  3. Configurar la configuración de suscripción:

4.2 Configuración de MQTT In

Configuración de Suscripción:

ConfiguraciónValor de EjemploDescripción
ServidorBroker MQTT de la CámaraSeleccionar broker configurado
Temacamera/commandsTema al que suscribirse
QoS0Calidad de entrega de mensajes
Salidaauto-detectFormato de mensajes
NombreLector de comandosIdentificador del nodo

4.3 Convenciones de Nombres de Tema

Estructura de tema recomendada:

PropósitoEjemplo de TemaUso
Comandoscamera/commandsRecibir comandos de control
Solicitudes de estadocamera/status/requestSolicitud de información de estado
Configuracióncamera/configCambios de configuración

4.4 Configurar el procesamiento de mensajes

  1. Agregar nodo "debug" para supervisar los mensajes entrantes
  2. Conectar: MQTT In → Debug
  3. Configurar nodo de depuración para mostrar el mensaje completo

Paso 5: Configurar MQTT Out (Publicar)

5.1 Agregar nodo MQTT Out

  1. Arrastre el nodo "mqtt out" al canvas
  2. Doble clic para configurar
  3. Seleccionar la misma configuración de broker

5.2 Configuración de MQTT Out

Configuración de Publicación:

ConfiguraciónValor de EjemploDescripción
ServidorBroker MQTT de la CámaraMismo broker que la entrada
Temacamera/responsesTema para respuestas de la cámara
QoS0Calidad de entrega de mensajes
RetenerFalseNo almacenar el último mensaje
NombrePublicador de RespuestasIdentificador del nodo

5.3 Estructura de Temas de Respuesta

Temas de respuesta recomendados:

Tipo de RespuestaEjemplo de TemaUso
Actualizaciones de estadocamera/statusInformación de estado de la cámara
Resultadoscamera/resultsResultados de la inspección
Acuses de recibocamera/ackConfirmaciones de comandos

Paso 6: Crear Flujo de Comunicación Básico

6.1 Construir Flujo de Mensajes Salientes

Cree un flujo para publicar mensajes desde la cámara:

  1. Agregar nodo "inject" para activar mensajes
  2. Agregar nodo "function" para formatear mensajes
  3. Agregar nodo "mqtt out" para publicar
  4. Conectar: Inject → Function → MQTT Out

6.2 Construir Flujo de Mensajes Entrantes

Cree un flujo separado para recibir mensajes:

  1. Agregar nodo "mqtt in" para suscribirse
  2. Agregar nodo "debug" para monitoreo
  3. Conectar: MQTT In → Debug

6.3 Configurar Nodo Inject

  1. Haz doble clic en el nodo Inject
  2. Configurar ajustes:
    • Nombre: "Send Test Message"
    • Payload: Timestamp
    • Topic: (dejar en blanco)
  3. Haga clic en "Done"

6.4 Configurar Function Node

Formato simple del mensaje:

// Format outgoing message
msg.topic = "camera/status";
msg.payload = "Camera online - " + new Date().toISOString();
return msg;

  1. Doble clic en el nodo Function
  2. Copie el código anterior en la pestaña "On Message"
  3. Nombre: "Format Message"
  4. Haz clic en "Done"

6.5 Configurar MQTT Out Node

  1. Doble clic en el mqtt out node
  2. Seleccionar broker: Camera MQTT Broker (configurado previamente)
  3. Topic: (dejar en blanco - set by function node)
  4. Nombre: "Publish Status"
  5. Haz clic en "Done"

6.6 Configurar MQTT In Node

  1. Doble clic en el mqtt in node
  2. Seleccionar broker: Camera MQTT Broker
  3. Topic: camera/commands
  4. Nombre: "Command Listener"
  5. Haz clic en "Done"

6.7 Configurar Debug Node

  1. Doble clic en el debug node
  2. Salida: Complete msg object
  3. Nombre: "Incoming Messages"
  4. Haz clic en "Done"

6.8 Estructura Final del Flujo

Tu flujo completo debería ser:

Saliente: Inject → Function → MQTT Out Entrante: MQTT In → Debug

Paso 7: Desplegar y Probar la Configuración

7.1 Desplegar Flujo

  1. Haz clic en el botón "Deploy" (esquina superior derecha)
  2. Verificar mensaje de despliegue exitoso
  3. Verificar indicadores de estado del nodo:
    • Punto verde: Conectado al broker
    • Punto rojo: Conexión fallida
    • Punto amarillo: Conectando

7.2 Prueba de Comunicación Interna

Probar la publicación MQTT de la cámara:

  1. Haga clic en el botón de inyección para enviar un mensaje de prueba
  2. Verifique que el nodo MQTT Out muestre actividad
  3. Verifique el panel de depuración si tiene mensajes externos

7.3 Prueba externa (Opcional)

Probar con un cliente MQTT externo para enviar comandos a la cámara:

Usando herramientas de línea de comandos:

# Send a test command to the camera
mosquitto_pub -h 192.168.0.100 -t "camera/commands" -m "test_command"

Resultado esperado: El nodo Debug debe mostrar el mensaje entrante en el panel de depuración de Node-RED.

7.4 Verificar la Comunicación

Verifique estos aspectos:

PruebaResultado EsperadoEstado
Conexión al brokerEstado verde en los nodos MQTT
Publicación de mensajesInyección dispara MQTT Out con éxito
Recepción de mensajesEl depurador muestra mensajes externos
ReconexiónReconexión automática tras interrupción de red

Paso 8: Resolución de Problemas de MQTT

8.1 Problemas de Conexión

ProblemaSíntomasSolución
No se puede conectar al brokerIndicadores de estado rojosVerifique la IP y el puerto del broker
Fallo de autenticaciónConexión rechazadaVerifique usuario/contraseña
Tiempos de espera de redEstado de conexión amarilloVerifique la conectividad de red
Bloqueo por firewallNo hay intento de conexiónAbrir puertos MQTT

8.2 Problemas de Mensajes

ProblemaSíntomasSolución
No se reciben mensajesEl depurador no muestra nadaVerifique suscripciones de tema
Los mensajes no se publicanClientes externos no ven nadaVerifique temas de publicación
Eror de formato de mensajeFallos de análisisUse mensajes de texto simples
Mensajes perdidosEntrega intermitenteVerifique la conexión al broker

8.3 Problemas de Rendimiento

ProblemaSíntomasSolución
Alta latenciaEntrega de mensajes con retrasoVerifique el rendimiento del broker
Caídas de conexiónReconexiones frecuentesAjuste la configuración de keep-alive
Sobrecarga de mensajesSobrecarga del brokerImplemente la limitación de mensajes

8.4 Técnicas de Depuración

Solución de problemas de forma sistemática:

  1. Verifique el estado de la conexión del broker en Node-RED
  2. Monitoree el panel de depuración de Node-RED para el flujo de mensajes
  3. Utilice mensajes de texto simples antes de datos complejos
  4. Verifique la conectividad de red con ping
  5. Pruebe con tópicos básicos antes de flujos avanzados

¡Éxito! Su comunicación MQTT está lista

Su sistema de comunicación MQTT ya puede:

  • Conectarse a MQTT brokers con autenticación adecuada
  • Suscribirse a topics para recibir comandos y datos
  • Publicar mensajes para actualizaciones de estado y respuestas
  • Manejar formatos de mensajes JSON para una comunicación estructurada
  • Reconectarse automáticamente tras interrupciones de red
  • Soportar múltiples niveles de QoS para diferentes prioridades de mensajes

Mantenimiento Continuo

Revisiones Regulares del Sistema

  • Monitorear el estado de la conexión del broker en Node-RED
  • Verificar la entrega de mensajes con mensajes de prueba
  • Verificar los registros del broker para detectar patrones de error
  • Actualizar las credenciales de autenticación según sea necesario

Monitoreo del Rendimiento

  • Rastrear la latencia de mensajes y los tiempos de entrega
  • Monitorear el uso de recursos del broker para la escalabilidad
  • Analizar patrones de uso de topics para la optimización
  • Revisar la configuración de QoS según los requisitos reales

Próximos Pasos

Después de configurar la comunicación MQTT básica:

  1. Implementar flujos de mensajería específicos para su aplicación
  2. Configurar jerarquías de topics para una comunicación organizada
  3. Agregar medidas de seguridad como cifrado TLS
  4. Integrar con sistemas externos utilizando protocolos MQTT establecidos
  5. Crear paneles de monitoreo para la salud del sistema

🔗 Véase También